const db = connect('company');

// 错误的修改方法
// db.workMan.update({ name: 'cs' }, { sex: 0 });


// 正确的修改方式,修改后的变量里面要重新放置完整的信息，
// 而关系型数据库则需要修改对应的字段就可以了，这是关系型数据库和非关系型（文档型）数据库的区别
// const updateWorkMan2 = {
//   name: 'cs',
//   age: 18,
//   sex: 0, // female
//   job: '前端diaos',
//   skill: {
//     skill1: 'minjie',
//     skill2: 'ui',
//     skill3: 'ppt'
//   },
//   registerTime: new Date(),
// }

// db.workMan.update({ name: 'cs' }, updateWorkMan2);

// $set修改器,修改记录的字段信息， 修改对象包裹的字段时，要用引号包裹
// db.workMan.update({name: 'chensai'}, {$set: {"skill.skill1": 'ps'}});
// $unset只关心key和value无关
// db.workMan.update({ name: 'chensai' }, {$unset: {age: undefined}});

// $set可以修改一个字段信息，也可以添加一个字段，key存在就是修改，不存走就是添加,添加到该记录的最后
// db.workMan.update({name: 'chensai'}, {$set: {age: 35}});
// 对字段进行数据加减,一定要用数字，不能用字符串
// db.workMan.update({name: 'chensai'}, {$inc: {age: parseInt('-20')}});

// multi: true选项参数,进行多个记录同时插入，默认是false，只进行更改第一条，true是进行更改多条
// db.workMan.update({}, {$set: {interest: []}}, {multi: true});

// upsert: true选项参数,进行数据字段的更新,查找到就更新，查找不到就将更改的记录添加进去，默认是false，即查找不到不进行更新
// db.workMan.update({name: 'xiaowang'}, {$set: {age: 11, skill: {}}}, {upsert: true});

// $push
// db.workMan.update({ name: 'xiaowang' }, {$push: {interest: 'draw'}});
// db.workMan.update({name: 'chensai'}, {$push: {'skill.skill4': 'sing song'}});

// $ne: 查找数组字段信息有没有某个值，有的话就不进行修改，没有的话就进行修改
// db.workMan.update({name: 'xiaowang', interest: {$ne: 'game'}}, {$push: {interest: 'playGame'}});
// db.workMan.update({name: 'xiaowang', interest: {$ne: 'playGame'}}, {$push: {interest: 'game'}});

// $addToSet是$ne的升级版，写法简单，功能和$ne的一样,数组中有则不修改，没有则添加
// db.workMan.update({ name: 'xiaowang' }, {$addToSet: {interest: 'readBook'}});

// $each,批量对数组进行追加
// db.workMan.update({name: 'xiaowang'}, {$addToSet: {interest: {$each: ['dance', 'code']}}});

// $pop: 从某条记录中的数组字段信息中删除，1: 从末端删除 -1:从开始位置进行删除
// db.workMan.update({ name: 'xiaowang' }, {$pop: {interest: 1}}); // 1 从尾部开始删除
// db.workMan.update({ name: 'xiaowang' }, {$pop: {interest: -1}}); // -1 从头部开始删除

// 对某条记录中的数组字段信息中修改指定位置的元素
db.workMan.update({ name: 'xiaowang' }, {$set: {'interest.1': 'books'}});

print('update');